$(function () {
  // 获取元素
  let $addTagBtn = $("#btn-add-tag");
  let $editBtn = $(".btn-edit");
  let $delBtn = $(".btn-del");

  // 添加
  $addTagBtn.click(function () {
    // sweetalert 对象.方法
    // xx ? true : false
    fAlert.alertOneInput({
      "title": "请输入新闻标签",
      "text": "标签的长度应在20字以内",
      "placeholder": "请输入新闻标签...",
      "confirmCallback": (val) => {
        // val 是获取的到的输入框用户输入的值
        $.post({
          url: "/admin/add-news-tag/",
          data: {
            "name": val
          },
          success: res => {
            console.log(res);
            console.log('======');
            if (res["code"] === 0) {
              fAlert.alertSuccessToast("添加成功");
              // 怎么优化 下次讲
              // setTimeout(() => {
              //   // 重载页面
              //   window.location.reload();
              // }, 1100)
              //  优化
              let tag = res["data"];
              let $tBody = $(".table tbody");
              let trStr = `
               <tr>
                <td data-id="${tag.tag_id}" data-name="${ tag.tag_name }">${ tag.tag_name }</td>
                <td>${tag.news_count}</td>
                <td>
                  <button class="btn btn-sm btn-warning btn-edit">编辑</button>
                  <button class="btn btn-sm btn-danger btn-del">删除</button>
                </td>
              </tr>
               `;
              $tBody.prepend(trStr);
            } else {
              fAlert.alertErrorToast(res["msg"]);
            }
          },
          error: err => {
            logErr(err);
          }
        })
      }
    })
  });
  // 编辑
  $editBtn.click(function () {
    //siblings() 获取所有是兄弟
    // css3 伪类选择器 parents("div#box") siblings("td:first-child")
    // find("li")  children()
    let $data = $(this).parent().siblings("td:first-child");
    // data-xx 这种形式才可以
    let id = $data.data("id");
    let name = $data.data("name");
    fAlert.alertOneInput({
      "title": "修改新闻标签",
      // `` 不是jq 是 es6 ${变量名}
      "text": `你正在修改 “${name}” 标签`,
      "placeholder": "请输入新闻标签...",
      "value": name,
      "confirmCallback": val => {
        if (val === name) {
          fAlert.alertInfoToast("未做任何改动");
          return false;
        }
        $.post({
          url: "/admin/edit-news-tag/",
          data: {
            "id": id,
            "name": val
          },
          success: res => {
            if (res["code"] === 0) {
              fAlert.alertSuccessToast("修改成功");
              $data.text(val);
            } else {
              fAlert.alertErrorToast(res["msg"]);
            }
          },
          error: err => {
            // 调用函数
            logErr(err);
          }
        })
      }
    })
  });

  // 删除
  $delBtn.click(function () {
    //siblings() 获取所有是兄弟
    let _this = $(this);
    let $data = _this.parent().siblings("td:first-child");
    // data-xx 这种形式才可以
    let id = $data.data("id");
    let name = $data.data("name");
    fAlert.alertConfirm({
      "title": `你确实要删除 “${name}” 标签`,
      "type": "error",
      "confirmText": "确认删除",
      "cancelText": "取消删除",
      "confirmCallback": function () {
        $.post({
          url: "/admin/del-news-tag/",
          data: {
            "id": id,
          },
          success: res => {
            console.log(res);
            if (res["code"] === 0) {
              window.message.showSuccess("删除成功");
              _this.parent().parent().remove();
            } else {
              fAlert.alertErrorToast(res["msg"]);
            }
          },
          error: err => {
            logErr(err);
          }
        })
      },
    })
  })
});

